home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 1 (Walnut Creek)
/
Aminet - June 1993 [Walnut Creek].iso
/
usenet
/
sources
/
volume89
/
comm
/
amigatcp.p1
< prev
next >
Wrap
Internet Message Format
|
1989-04-27
|
7KB
Path: xanth!nic.MR.NET!indri!unmvax!tut.cis.ohio-state.edu!bloom-beacon!apple!oliveb!sun!rishathra!page
From: page%rishathra@Sun.COM (Bob Page)
Newsgroups: comp.sources.amiga
Subject: v89i100: amigatcp - two additional files
Message-ID: <101408@sun.Eng.Sun.COM>
Date: 26 Apr 89 21:48:15 GMT
Sender: news@sun.Eng.Sun.COM
Lines: 185
Approved: page@sun.com
Submitted-by: rminnich@super.org (Ronald G. Minnich)
Posting-number: Volume 89, Issue 100
Archive-name: comm/amigatcp.p1
These two files were missing from the original distribution. You
can't re-make the AmigaTCP package without them.
# This is a shell archive.
# Remove anything above and including the cut line.
# Then run the rest of the file through 'sh'.
# Unpacked files will be owned by you and have default permissions.
#----cut here-----cut here-----cut here-----cut here----#
#!/bin/sh
# shar: SHell ARchive
# Run the following text through 'sh' to create:
# devstub.asm
# version.c
# This is archive 1 of a 1-part kit.
# This archive created: Wed Apr 26 14:43:23 1989
echo "extracting devstub.asm"
sed 's/^X//' << \SHAR_EOF > devstub.asm
X;****************************************************************
X;* *
X;* Stub device driver. *
X;* *
X;* Copyright (C) 1986 *
X;* Louis A. Mamakos *
X;* Software & Stuff *
X;* *
X;* All rights reserverd. The program represents propriatary *
X;* information of value to the author, and my not be *
X;* reproduced or redistributed in any form include source, *
X;* object code or any other representation without prior *
X;* permission from the author. *
X;* *
X;****************************************************************
X
X
X;
X; Assembly language stub for device driver.
X;
X; FAR CODE
X; FAR DATA
X
X
X CSECT text
X XREF _NetDevOpen,_DevClose,_DevBeginIO ; external symbols
X XREF _DevExpunge,_DevAbortIO ;_geta4
X XREF _nopens
X
X XDEF _DSOpen,_DSClose,_DSAbortIO ; defined symbols
X XDEF _DSBeginIO,_DSExpunge
X XDEF _Savea4
X;REGS REG D1-D7/A0-A6
X
X;
X; set up C runtime environment. This is the Aztec C version.
X;
XCENTRY MACRO
X movem.l D2-D7/A2-A6,-(sp) ;save registers
X move.l a4loc,a4 ;get a4
X; jsr _geta4
X ENDM
X
XCRETURN MACRO
X movem.l (sp)+,D2-D7/A2-A6 ;restore registers
X rts ;return to caller
X ENDM
X
X; MACRO DEBUG
X; move.l a6,-(sp)
X; move.l _SysBase,a6
X; jsr _LVODebug(a6)
X; move.l (sp)+,a6
X; ENDM
X
X
X;----------------------------------------------------------------------
X;
X; here begins the system interface commands. When the user calls
X; Opendevice/Closedevice/Removedevice, this eventually gets translated
X; into a call to the following routines (Open/Close/Expunge). Exec
X; has already put our device pointer in A6 for us. Exec has turned
X; off task switching while in these routines (via Forbid/Permit), so
X; we should not take too long in them.
X;
X;----------------------------------------------------------------------
X
X ; Open returns the device pointer in d0 if the open
X ; was successful. If the open failed then null is returned.
X ; It might fail if we allocated memory on each open, or
X ; if only open application could have the device open
X ; at a time...
X
X_DSOpen: ; ( device:a6, unitnum: d0, iob:a1, flags:d1 )
X CENTRY
X move.l a4loc,a4
X move.l d1,-(sp) ; push flags
X move.l a1,-(sp) ; push iob address
X move.l d0,-(sp) ; push unit number
X move.l a6,-(sp) ; device
X addq.l #1,_nopens
X jsr _NetDevOpen ; DevOpen(device, iob, unit, flags)
X lea 16(sp),sp ; trash paramters
X CRETURN
X
X ; There are two different things that might be returned from
X ; the Close routine. If the device is no longer open and
X ; there is a delayed expunge then Close should return the
X ; segment list (as given to Init). Otherwise close should
X ; return NULL.
X
X_DSClose: ; ( device:a6, iob:a1 )
X CENTRY
X move.l a1,-(sp) ; push iob
X move.l a6,-(sp) ; push device
X jsr _DevClose ; DevClose(device, iob)
X addq.l #8,sp ; trash parameters
X CRETURN
X
X
X ; There are two different things that might be returned from
X ; the Expunge routine. If the device is no longer open
X ; then Expunge should return the segment list (as given to
X ; Init). Otherwise Expunge should set the delayed expunge
X ; flag and return NULL.
X ;
X ; One other important note: because Expunge is called from
X ; the memory allocator, it may NEVER Wait() or otherwise
X ; take long time to complete.
X
X_DSExpunge: ; ( device: a6 )
X CENTRY
X move.l a6,-(sp) ; push device pointer
X jsr _DevExpunge ; DevExpunge(dev)
X addq.l #4,sp ; pop parameters
X CRETURN
X
X
XNull:
X moveq.l #0,d0
X rts
Xa4loc dc.l 0
X_Savea4:
X move.l a4,a4loc
X rts
X;----------------------------------------------------------------------
X;
X; here begins the device specific commands
X;
X;----------------------------------------------------------------------
X
X_DSBeginIO: ; ( iob:a1, device:a6 )
X CENTRY
X move.l a6,-(sp) ; push device
X move.l a1,-(sp) ; push iob
X jsr _DevBeginIO ; DevBeginIO(iob, device)
X addq.l #8,sp ; pop args
X CRETURN
X
X;
X_DSAbortIO: ; ( iob:a1, device:a6 )
XInvalid:
X CENTRY
X move.l a6,-(sp) ; push device
X move.l a1,-(sp) ; push iob
X jsr _DevAbortIO ; DevAbortIO(iob, device)
X addq.l #8,sp ; pop args
X CRETURN
X
X END
SHAR_EOF
echo "extracting version.c"
sed 's/^X//' << \SHAR_EOF > version.c
X/* version control information */
X
X/* the date of release by N3EUA from distribution central -- DO NOT CHANGE! */
Xchar major_rev[] = "870227";
X
X/* revision indicator for keeping track of local patches - change this one! */
Xchar minor_rev[] = "5";
SHAR_EOF
echo "End of archive 1 (of 1)"
# if you want to concatenate archives, remove anything after this line
exit